package com.itheima.demo;

import com.itheima.constant.RedisConstant;
import com.itheima.utils.QiniuUtils;
import redis.clients.jedis.JedisPool;

import java.util.Set;

/**
 * 清理图片的任务
 * @author 黑马程序员
 * @Company http://www.ithiema.com
 * @Version 1.0
 */
public class ClearImgJob {

    JedisPool jedisPool;

    public void setJedisPool(JedisPool jedisPool) {
        this.jedisPool = jedisPool;
    }

    /**
     * 清理图片的方法
     *  1. 取出垃圾图片的名称： redis中两个set集合取不同的数据
     *  2. 删除七牛云上的垃圾图片
     *  3. 删除redis中垃圾图片名称
     *
     */
    public void clear(){
//        1. 取出垃圾图片的名称： redis中两个set集合取不同的数据
        //sDiff 取出两个set集合中的差值
        Set<String> imgSet = jedisPool.getResource().sdiff(RedisConstant.SETMEAL_PIC_RESOURCES, RedisConstant.SETMEAL_PIC_DB_RESOURCES);
        for (String imgName : imgSet) {
//        2. 删除七牛云上的垃圾图片
            QiniuUtils.deleteFileFromQiniu(imgName);
//        3. 删除redis中垃圾图片名称
            jedisPool.getResource().srem(RedisConstant.SETMEAL_PIC_RESOURCES, imgName);
        }
    }
}
